package com.studyweb.mapper;

import com.studyweb.pojo.entity.WrongQuestion;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 错题本数据访问层
 */
@Mapper
public interface WrongQuestionMapper {
    
    /**
     * 查询错题列表
     */
    List<WrongQuestion> selectQuestions(@Param("offset") int offset, 
                                          @Param("pageSize") int pageSize,
                                          @Param("questionType") String questionType,
                                          @Param("difficulty") String difficulty,
                                          @Param("category") String category,
                                          @Param("module") String module,
                                          @Param("keyword") String keyword);
    
    /**
     * 统计错题数量
     */
    int countQuestions(
        @Param("questionType") String questionType,
        @Param("difficulty") String difficulty,
        @Param("category") String category,
        @Param("module") String module,
        @Param("keyword") String keyword);
    
    /**
     * 插入错题记录
     */
    int insert(WrongQuestion question);
    
    /**
     * 根据ID查询错题
     */
    WrongQuestion selectById(@Param("id") Long id);
    
    /**
     * 更新错题
     */
    int updateById(WrongQuestion question);
    
    /**
     * 删除错题
     */
    int deleteById(@Param("id") Long id);
    
    /**
     * 批量删除错题
     */
    int batchDeleteByIds(List<Long> ids);
    
    /**
     * 获取练习题目
     */
    List<WrongQuestion> selectPracticeQuestions(
        @Param("count") Integer count,
        @Param("difficulty") String difficulty,
        @Param("category") String category,
        @Param("module") String module,
        @Param("orderBy") String orderBy,
        @Param("orderType") String orderType);

}